SigRank MCP server
The SigRank MCP server lets you score, rank, and publish AI token usage efficiency metrics — without sharing sensitive prompt content. Key capabilities include:
Score token counts locally (
rank_paste): Input raw token pillars (input, output, cacheCreate, cacheRead) to instantly get efficiency metrics (Υ Yield, SNR, Leverage, Velocity, 10xDEV, Class) and a prose narrative card, all computed on-device.Rank multiple time windows (
rank_windows): Score token data across up to four windows (7d/30d/90d/all-time) simultaneously.Pull local token usage automatically (
tokenpull): Scan on-device session logs from 15+ AI platforms (Claude, Codex, Amp, Gemini, Copilot, Goose, etc.) and compute cascade metrics across all time windows — no pasting, no content read.Pull and publish in one step (
tokenpull_submit): Combine local log scanning with a leaderboard submission, optionally filtered by window or platform.Submit to the leaderboard (
submit_paste): Score a token paste locally for a preview, then optionally publish it to the public SigRank board under a codename.View the live leaderboard (
get_leaderboard): Fetch the public board from signalaf.com, ranked by Υ Yield, with optional time window filters.Look up any operator's profile (
get_operator): Retrieve a specific operator's live stats and cascade metrics by codename.Watch your score in real time (
watch_tokenpull): Poll local session logs at a configurable interval for live efficiency score updates as new AI sessions are written.
Allows reading token counts from AMP threads directory (~/.local/share/amp/threads) for token usage analysis, providing per-message tokens.
Allows reading token counts from GitHub Copilot CLI sessions (~/.copilot/otel) for token usage analysis; requires the COPILOT_OTEL_ENABLED=true environment variable to be set before the session.
Allows reading token counts from Hermes state database (~/.hermes/state.db) for token usage analysis, extracting reasoning and output tokens per message.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SigRank MCP serverRank my paste: 100 input, 200 output."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🏆 SigRank is live: signalaf.com — the leaderboard for how efficiently you use AI, not how much. See your projected rank in 60 seconds at signalaf.com/score. Token counts only. Never your prompts.
The yield cascade + live leaderboard as MCP tools any agent can call.
For all builders, burners and 10xers.
The board | Your operator profile |
|
|
Every operator ranked by Υ Yield — the architecture of the cascade, not raw spend | Cascade layer, class, and fingerprint — derived from four token counts |
Run
sigrank enrollthensigrank submitto get ranked and claim your public profile at signalaf.com.
Quickstart — 3 steps to the board
# 1. Install (pulls ccusage + tokscale + tokendash automatically — no separate installs)
npm install -g sigrank
# 2. Sign in (paste a connect code from signalaf.com → Settings → New key)
sigrank enroll
# 3. Submit your cascade to the board
sigrank submit
# (cautious? see exactly what would be sent — four counts + a signature — sending nothing)
sigrank submit --dry-runThat's it. sigrank reads your local AI session logs on-device, derives your token cascade (Υ Yield, Leverage, Velocity, 10xDEV), and publishes to signalaf.com. No paste, no transcript content — only the four token counts leave your machine.
Or just explore without signing in:
sigrank # launches the full tabbed TUI (dashboard, compare, board, watch)
npx sigrank board --once # print the live leaderboard onceRelated MCP server: MCP Monitor
Install from GitHub
git clone https://github.com/SunrisesIllNeverSee/sigrank-mcp.git
cd sigrank-mcp
npm install
# Run CLI
node index.mjs # TUI (if TTY)
node cli.mjs board --once # leaderboard one-shot
# Or link globally for `sigrank` command
npm link
sigrankRepo: SunrisesIllNeverSee/sigrank-mcp
Site: signalaf.com
npm: sigrank
Smithery: smithery.ai/servers/burnmydays/sigrank-mcp
Glama: glama.ai/mcp/servers/SunrisesIllNeverSee/sigrank-mcp
Install via Smithery
SigRank is available on Smithery as a stdio MCP bundle — one-click install for Claude Desktop, Cursor, and other MCP clients.
Smithery CLI
# Install Smithery CLI
npm install -g smithery
# Connect to SigRank (downloads the MCPB bundle locally)
smithery mcp add burnmydays/sigrank-mcp --id sigrank
# List available tools
smithery tool list sigrank
# Call a tool
smithery tool call sigrank get_leaderboard '{}'
smithery tool call sigrank rank_paste '{"text": "1000000 500000 50000 800000"}'Claude Desktop (via Smithery)
Click Install
Smithery handles the rest — no manual config editing
Commands
⊙ SigRank CLI v0.14.2
Default (no args)
sigrank unified dashboard: cascade + token pillars + board
Commands
enroll sign in: paste a connect code (get one at signalaf.com → Settings)
submit publish your verified runs to the board (sign in first)
board live leaderboard (refreshes every 30s)
board --window 7d board for a specific window (7d, 30d, 90d, all)
board --once print once and exit
compare raw pillar audit: tokenpull vs ccusage vs token-dash vs tokscale
compare --platform codex compare for a specific platform
tui full tabbed TUI: Dashboard / Trends / Compare / Board / Watch / Connect
tui --platform codex TUI with a different default platform
watch live tune meter — re-reads local logs every 30s
watch --window 7d watch a specific window
Options
--window 7d · 30d · 90d · all (default: 30d for board, 7d for watch)
--platform claude · codex · amp · gemini · opencode · goose · …
--refresh poll interval in seconds (default: 30)
--once print once and exit (board only)
For AI clients (not typeable)
In a piped/non-TTY context, sigrank is an MCP stdio server.
AI clients (Claude, Cursor, …) call its tools automatically — these are
NOT shell commands. Humans use the commands above.
Examples
sigrank # unified dashboard
sigrank board # live leaderboard
sigrank compare # pillar audit (claude)
sigrank compare --platform codex
sigrank watch --window 7d --refresh 60
sigrank board --window all --onceThe TUI is the whole app
Launch it and sign in inside it:
npx sigrankSix tabs. Keys: 1-6 or ← → to switch · R refresh · Q quit.
Tab | Key | Content |
Dashboard |
| Cascade table (all platforms × windows + combined) · Υ sparklines · token composition bars · mini board |
Trends |
| Every metric across windows — sub-views: You / Platform / Field |
Compare |
| 4-source pillar audit (tokenpull vs ccusage vs token-dash vs tokscale) · delta % · cascade metrics per source · cache read bar chart |
Board |
| Full leaderboard with all fields · |
Watch |
| In-TUI landing panel · |
Connect |
| Sign in / switch device — paste a connect code from signalaf.com → Settings. Then |
Sign in + submit
sigrank enroll # sign in: paste a connect code (get one at signalaf.com → Settings)
sigrank submit # publish your verified runs to the board (sign in first)
sigrank submit --dry-run # inspect the exact signed payload without sending anythingOr do it inside the TUI on the Connect tab (6), then press [S] to submit.
MCP Server mode
When stdout is not a TTY (i.e. piped to an AI client), sigrank starts an MCP stdio server automatically. AI clients (Claude Code, Cursor, Windsurf, etc.) use this path.
Add to .mcp.json or equivalent:
{
"mcpServers": {
"sigrank": {
"command": "npx",
"args": ["-y", "sigrank"]
}
}
}Or if installed globally:
{
"mcpServers": {
"sigrank": {
"command": "sigrank"
}
}
}MCP Tools
Tool | Args | What |
|
| Scores token pillars → Υ Yield / SNR / Leverage / Velocity / 10xDEV / Class + prose narration card |
|
| Live board from signalaf.com — sorted by Υ Yield |
|
| One operator's live profile |
|
| Rank locally then POST to board. Omit codename for preview-only |
|
| On-device local reader: scans local logs → 4-window cascade. Zero paste, token-only |
|
|
|
|
| All four sources side-by-side: tokenpull + ccusage + token-dash + tokscale. Returns pillars, cascade metrics, and delta % vs tokenpull per window |
|
| Multi-window cascade from local logs |
|
| One cascade snapshot per call (interval_s advisory) |
|
| THE ranked path: builds + ed25519-signs Schema 1.0 snapshots and POSTs them. |
|
| Bind this device with a connect code from signalaf.com → Settings |
Cascade math
Υ Yield = (cache_read × output) / input²
SNR = output / (input + output)
Leverage = cache_read / input
Velocity = output / input
10xDEV = log₁₀(leverage)Math is in cascade.mjs, dependency-free. Mirrors sigrank-app/lib/ingest/bridge.ts.
Canon check: MO§ES (1251211, 11296121, 128196310, 2555179769) → Υ 18436.98.
Token Pillars — sources
The dashboard pulls from multiple sources and shows them side-by-side for verification:
Source | What | Platform |
| On-device JSONL scanner (canon source) | claude, codex, amp, … |
|
| claude, codex |
|
| claude only |
|
| claude, codex |
Codex input is estimated — Codex logs don't expose true input tokens directly. The formula:
input = output × ioRatio (ioRatio derived from Claude ratio, else 2.0)
cacheCreate = uncached − input (uncached = input_tokens − cached_input_tokens)
cacheRead = exact (from logs)Verifier numbers (ccusage/tokscale for codex) show raw uncached input (input_tokens − cached) — a different field than the estimated input above. The discrepancy is expected and explained inline in the dashboard.
Platform adapters
All adapters are token-only (no message content, no cost fields, no credentials).
Platform | Path | Notes |
Claude Code | ✅ | Native; dedup by |
Codex | ✅ | Estimated input via |
Amp | ✅ | Full 4-pillar; per-message |
Kimi | ✅ | Full 4-pillar; |
pi-agent | ✅ | Full 4-pillar; per-message JSONL |
OpenClaw | ✅ | Full 4-pillar; per-message JSONL |
Droid | ✅ | Full 4-pillar; thinking→output |
Codebuff | ✅ | Full 4-pillar; |
Hermes | ✅ | Full 4-pillar; SQLite; reasoning→output |
Kilo | ✅ | Full 4-pillar; SQLite |
Qwen | ✅ |
|
Goose | ✅ |
|
Gemini CLI | ✅ |
|
GitHub Copilot CLI | ✅ | OTel JSONL; requires |
OpenCode | ⚠️ | Raw token counts not persisted in log format |
Cursor | 🔜 | Chat log path TBD |
Windsurf | 🔜 | Session logs at |
estimated=true means one or more pillars are derived, not native. The server re-scores all submitted pillars authoritatively; local preview Υ is indicative only.
Privacy
Token-only, always. No message content is ever read, logged, or transmitted — only token counts (
input,output,cache_creation,cache_read), message IDs, and timestamps.Local by default.
tokenpullreads only~/.claude/projects(Claude) or~/.codex(Codex) on your device. Numbers stay on your machine unless you explicitly submit with a codename.Background tooling excluded. Memory plugins, observers, summarizers (e.g.
claude-mem,mem0,observer-sessions) are filtered from both Claude and Codex reads.subagents/are kept — they represent real operator work.Board reads are anonymous. No account needed to browse, compare, or watch.
Ranked submissions are signed, not trusted.
sigrank submitrequires a one-timeenroll(device-bound ed25519 key — the private key never leaves your machine). Verify what's sent withsigrank submit --dry-run: the payload is four token counts, ratios, and a signature.
Env vars
Var | Default | Description |
|
| Override the board host |
|
| Board API fetch timeout (ms) |
Dev / test
node test.mjs # 29 unit tests (no network, no fs writes)
node index.mjs # stdio MCP server directly (pipe to MCP client)Tests verify (29 assertions):
rank_pastecanon: MO§ES(1251211, 11296121, 128196310, 2555179769)→ Υ 18436.98 · TRANSMITTERsubmit_pastepreview (no codename) + POST shape (injected fetch, no live writes)tokenpulldedup, window slicing, 4-window pillars (mock adapter)tokenpull_submitall 4 windows POST, sha256 hash, ddmmyy stamptokenpullCodexio_ratio conversion per-windowAdapter registry (15 platforms) + per-adapter shape contracts
rank_windows4-window paste scoring, partial input, no-networkwatch_tokenpullcascade snapshot, interval_s, TODO(AUTH.WIRE) stubHardening: div-by-zero guards, parsePillars warnings, fetch timeout, EXCLUDE_TOOLING regex, narrate safety
File map
File | Responsibility |
| Entry point — TTY detection, routes to CLI or MCP server |
| CLI commands: board, compare, watch, enroll, submit, help |
| Full tabbed TUI: Dashboard / Trends / Compare / Board / Watch / Connect |
| Pure cascade math (Υ, SNR, leverage, velocity, 10xDEV, class) |
| On-device log scanner — Claude, Codex, multi-platform |
| Platform adapter registry (15+ platforms) |
| MCP tool table + dispatcher |
| Connect-code enrollment + device identity |
| Local key management (paste-keys, not API keys) |
| Verified submit flow (signs + POSTs to board) |
| Schema 1.0 signing (X-Agent-Signature) |
| Deterministic prose narration card |
| Unit tests (no external deps) |
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SunrisesIllNeverSee/sigrank-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server

